#ifndef	IFACER_H
#define	IFACER_H					"        IFACER_H >>>    "
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef	__XTERN
	#if	defined(_MSC_VER)
		#define	__XTERN	__declspec(dllexport)
	#else
		#define	__XTERN	__attribute__((visibility("default")))
												#endif
													#endif
#ifdef	__cplusplus
extern	"C" {
#endif



///	人脸检测/追踪
///	IFacerInit() 必需传入临时路径，option=0
///	IFacerReset() 重置视频格式（灰度图，建议缩小输入尺寸到200～300），返回支持的关键点个数
///	IFacerDetect() 传入下一帧图像，返回人脸数
///	IFacerBest2D() 返回最佳脸的可靠性，关键点平面坐标（未归一），三轴右旋角度（X向右，Y向下，Z向远，等价于四元数）
///////////////////////////////////////////////////////////
__XTERN void*   IFacerInit(char *path, int option);
__XTERN int    IFacerReset(void *x, int w, int h, int pitch, int max);
__XTERN int   IFacerDetect(void *x, void *data);
__XTERN float IFacerBest2D(void *x, int id, float *xy, float *nz, float *ny, float *nx);
__XTERN void*   IFacerFree(void *x);
///////////////////////////////////////////////////////////
///			外眉角	外上眉线 上眉线 内上眉线	内上眉角			内上眉角	内上眉线 上眉线 外上眉线	外眉角
///					外下眉线 下眉线 内下眉线	内下眉角			内下眉角	内下眉线 下眉线 外下眉线
///	太阳穴																											太阳穴
///					外上眼线 上眼线 内上眼线									内上眼线 上眼线 外上眼线
///				外眼角		眼球|瞳孔		内眼角			鼻根		内眼角		眼球|瞳孔		外眼角
///	眼角外			外下眼线 下眼线 内下眼线		上鼻侧		上鼻侧			内下眼线 下眼线 外下眼线			眼角外
///															鼻根下
///	颧骨外																											颧骨外
///	颧骨外下												鼻尖上													颧骨外下
///	颊肌外上									下鼻侧				下鼻侧											颊肌外上
///															鼻尖
///	颊肌外							鼻翼											鼻翼							颊肌外
///										鼻孔外侧 鼻孔内侧	鼻底	鼻孔内侧 鼻孔外侧
///	颊肌外下																										颊肌外下
///	上颚上											上内唇线	上内唇线											上颚上
///										上外唇线			上唇中				上外唇线
///	上颚					嘴角	牙龈角		上牙龈线	上牙龈		上牙龈线	牙龈角	嘴角					上颚
///												下牙龈线	下牙龈		下牙龈线
///		上颚下							上内唇线								上内唇线						上颚下
///												下内唇线	下唇中		下内唇线
///			颚关节上																						颚关节上
///				颚关节																					颚关节
///						颚关节下																颚关节下
///								下颚外点 下颚点 下颚内点	下巴尖	下颚内点 下颚点 下颚外点
///////////////////////////////////////////////////////////
#define	Xacer_eye			(0)							///	[眼球中心，上眼线，下眼线][2]
#define	Xacer_inner			(Xacer_eye			+2*3)	///	[内眼角，内上眼线，内下眼线][2]
#define	Xacer_outer			(Xacer_inner		+2*3)	///	[外眼角，外上眼线，外下眼线][2]
#define	Xacer_pupil			(Xacer_outer		+2*3)	///	[瞳孔][2]
///////////////////////////////////////////////////////////
#define	Xacer_innerbow		(Xacer_pupil		+2*1)	///	[内上眉角，内下眉角，内上眉线，内下眉线][2]
#define	Xacer_outerbow		(Xacer_innerbow		+2*4)	///	[外眉角，外上眉线，外下眉线][2]
#define	Xacer_bow			(Xacer_outerbow		+2*3)	///	[上眉线，下眉线][2]
///////////////////////////////////////////////////////////
#define	Xacer_noseside		(Xacer_bow			+2*2)	///	[上鼻侧，下鼻侧][2]
#define	Xacer_nosewing		(Xacer_noseside		+2*2)	///	[鼻翼，鼻孔外侧，鼻孔内侧][2]
///////////////////////////////////////////////////////////
#define	Xacer_lip			(Xacer_nosewing		+2*3)	///	[嘴角，上外唇线，下外唇线，上内唇线，下内唇线][2]
#define	Xacer_gum			(Xacer_lip			+2*5)	///	[牙龈角，上牙龈线，下牙龈线][2]
///////////////////////////////////////////////////////////
#define	Xacer_temple		(Xacer_gum			+2*3)	///	[太阳穴，眼角外][2]
#define	Xacer_zygoma		(Xacer_temple		+2*2)	///	[颧骨外，颧骨外下，颊肌外上][2]
#define	Xacer_cheek			(Xacer_zygoma		+2*3)	///	[颊肌外，颊肌外下，上颚上][2]
#define	Xacer_jaw			(Xacer_cheek		+2*3)	///	[上颚，上颚下，颚关节上][2]
#define	Xacer_joint			(Xacer_jaw			+2*3)	///	[颚关节，颚关节下][2]
#define	Xacer_chin			(Xacer_joint		+2*2)	///	[下颚外点，下颚点，下颚内点][2]
///////////////////////////////////////////////////////////
#define	Xacer_chintip		(Xacer_chin			+2*3)	///	[下巴尖]
#define	Xacer_lowerlip		(Xacer_chintip		+1)		///	[下唇中点]
#define	Xacer_lowergum		(Xacer_lowerlip		+1)		///	[下牙龈中点]
#define	Xacer_uppergum		(Xacer_lowergum		+1)		///	[上牙龈中点]
#define	Xacer_upperlip		(Xacer_uppergum		+1)		///	[上唇中点]
#define	Xacer_nosebase		(Xacer_upperlip		+1)		///	[鼻底]
#define	Xacer_nose			(Xacer_nosebase		+1)		///	[鼻尖，鼻尖上，鼻根下]
#define	Xacer_noseroot		(Xacer_nose			+3)		///	[鼻根]
///////////////////////////////////////////////////////////
#define	Xacer_N				(Xacer_noseroot		+1)



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef	__cplusplus
}
#endif
#endif

